package com.macro.mall.mapper;

import com.macro.mall.dto.CaseDto;
import com.macro.mall.dto.CasePicDto;
import com.macro.mall.model.CaseEntity;
import com.macro.mall.model.caseStyleEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *  案例Mapper
 *
 * @author zhang
 * @date 2021/06/19
 */
public interface CaseMapper {

    /**
     *  查询案例列表
     *
     * @param tenantId 商家id
     * @param pageSize 页大小
     * @param skip 页码
     * @return List
     */
    List<CaseEntity> findCaseList(@Param("tenantId") Long tenantId,
                                  @Param("pageSize") Integer pageSize,
                                  @Param("skip") Integer skip);

    /**
     * 查询案例个数
     *
     * @param tenantId 商家id
     * @return int
     */
    int findCaseCount(Long tenantId);

    /**
     * 查询案例信息
     *
     * @param caseId 案例id
     * @return CaseEntity
     */
    CaseEntity findCaseInfo(Long caseId);

    /**
     * 查询案例详细信息
     *
     * @param caseId 案例id
     * @return List
     */
    List<CasePicDto> findCasePicList(Long caseId);
    /**
     *  删除案例
     *
     * @param caseId 案例id
     */
    void deleteCase(Long caseId);

    /**
     *  新增案例
     *
     * @param caseDto 入参
     */
    void addCase(CaseDto caseDto);

    /**
     *  新增商家案例关系
     *
     * @param tenantId 商家id
     * @param caseId 案例id
     */
    void addTenantCase(@Param("tenantId") Long tenantId, @Param("caseId") Long caseId);

    /**
     * 添加案例图片
     *
     * @param caseId 案例id
     * @param CasePicList 图片list
     */
    void addCasePic(@Param("caseId") Long caseId, @Param("list") List<CasePicDto> CasePicList);

    /**
     * 修改案例
     *
     * @param caseDto 入参
     */
    void updateCase(@Param("param") CaseDto caseDto);

    /**
     * 修改图片url
     *
     * @param caseId 入参
     */
    void deleteCasePices(@Param("caseId") Long caseId);

    /**
     * 查询风格
     *
     * @return List
     */
    List<caseStyleEntity> findCaseStyleList();

    /**
     * 查询风格
     *
     * @return List
     */
    List<caseStyleEntity> findCaseTypeList();
}
